package com.qingcheng.service.seckill;

import com.qingcheng.pojo.seckill.SeckillOrder;
import com.qingcheng.util.SeckillStatus;

/**
 * @Author:boy
 * @Date:2019/7/23
 * @description:
 * @ModifiedBy:
 */
public interface SeckillOrderService {
    /**
     * 新增秒杀订单
     *
     * @param id        订单id
     * @param startTime 秒杀开始时间
     * @param username  用户名称
     * @return
     */
    public boolean add(Long id, String startTime, String username);

    /**
     * 根据用户名查询用户秒杀订单状态
     *
     * @param username 用户名
     * @return
     */
    public SeckillStatus queryStatus(String username);

    /**
     * 支付成功更新订单信息
     *
     * @param out_trade_no   订单号
     * @param transaction_id 交易流水号
     * @param username       用户名
     */
    public void updatePayStatus(String out_trade_no, String transaction_id, String username);

    /**
     * 根据用户名查询秒杀订单
     * @param username 用户名
     * @return
     */
    public SeckillOrder findByUsername(String username);

    /**
     * 延时发送消息
     * @param seckillStatus 订单状态
     */
    public void sendDelayMessage(SeckillStatus seckillStatus);
}
